<template>
	<view class="wrapper">
		<view>
			<u-tabs-swiper ref="uTabs" :bar-height="1" :bar-width="100" active-color="#1296db" :list="interMenu"
				:current="current" @change="tabsChange" :is-scroll="false" swiperWidth="750"></u-tabs-swiper>
		</view>

		<swiper :current="swiperCurrent" @transition="transition" @animationfinish="animationfinish">
			<swiper-item class="swiper-item" v-for="(item, index) in interMenu" :key="index">

				<mingqi-list v-if="index === 0"></mingqi-list>

				<mod-conbination v-else-if="index===1"></mod-conbination>

				<!-- easycom -->
				<image-chooser v-else></image-chooser>
				
			</swiper-item>
		</swiper>

		<my-tabbar></my-tabbar>
	</view>
</template>

<script>
	import {
		mapState
	} from 'vuex' //引入mapState

	export default {

		data() {
			return {
				// 因为内部的滑动机制限制，请将tabs组件和swiper组件的current用不同变量赋值
				current: 0, // tabs组件的current值，表示当前活动的tab选项
				swiperCurrent: 0, // swiper组件的current值，表示当前那个swiper-item是活动的
			};
		},

		computed: mapState(["interMenu"]),

		methods: {
			// tabs通知swiper切换
			tabsChange(index) {
				this.swiperCurrent = index;
			},

			// swiper-item左右移动，通知tabs的滑块跟随移动
			transition(e) {
				let dx = e.detail.dx;
				this.$refs.uTabs.setDx(dx);
			},

			// 由于swiper的内部机制问题，快速切换swiper不会触发dx的连续变化，需要在结束时重置状态
			// swiper滑动结束，分别设置tabs和swiper的状态
			animationfinish(e) {
				let current = e.detail.current;
				this.$refs.uTabs.setFinishCurrent(current);
				this.swiperCurrent = current;
				this.current = current;
			},

			// scroll-view到底部加载更多
			onreachBottom() {

			}
		}
	};
</script>

<style lang="scss">
	.wrapper {
		width: 100%;
		height: calc(100vh - 50px);

		display: flex;
		flex-direction: column;

		swiper {
			flex: 1;
		}
	}

	/* 下穿不下去？ */
	* {
		box-sizing: border-box;
	}
</style>